# encoding: utf-8
# @Author: zsl
# @Desc : 计算器
# Kivy是一个免费的开源Python库，可以快速轻松地开发高度交互的跨平台应用程序
# 这个计算器可以进行基本的加、减、乘、除运算，并且有清除（C）和等于（=）按钮。
# 它使用 Tkinter 创建了一个简单的图形用户界面，包含一个显示区域和多个按钮。
# 当用户点击按钮时，相应的操作会被执行，结果会显示在显示区域中。
# 运行代码，出现一个计算器，非常好用！
# @Date  : 2025/07/08 17:53
import tkinter as tk

class Calculator:
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("简单计算器")

        self.expression = ""
        self.display_var = tk.StringVar()

        self.display = tk.Entry(self.root, textvariable=self.display_var, font=('Helvetica', 20))
        self.display.grid(row=0, column=0, columnspan=4)

        buttons = [
            '7', '8', '9', '/',
            '4', '5', '6', '*',
            '1', '2', '3', '-',
            '0', '.', '=', '+',
            'C' ]

        row_val = 1
        col_val = 0
        for button in buttons:
            (tk.Button(self.root, text=button, padx=20, pady=20, command=lambda b=button: self.button_click(b))
             .grid(row=row_val, column=col_val))
            col_val += 1
            if col_val > 3:
                col_val = 0
                row_val += 1

    def button_click(self, button):
        if button == '=':
            try:
                result = str(eval(self.expression))
                self.display_var.set(result)
                self.expression = result
            except:
                self.display_var.set("错误")
                self.expression = ""
        elif button == 'C':
            self.display_var.set("")
            self.expression = ""
        else:
            self.expression += button
            self.display_var.set(self.expression)

    def run(self):
        self.root.mainloop()

if __name__ == "__main__":
    calculator = Calculator()
    calculator.run()
